Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

102
Visualizações
¿Cómo puedo obtener una salida como [elemento: 'valor1', elemento: 'valor2', ...] en una matriz de objetos en Javascript?

Estoy tratando de convertir un JSON (una lista de países/ciudades del mundo) en una matriz, y lo que intento hacer con la matriz es:

  1. Dejar solo el nombre de los países
  2. Ya que muchos de los países se repiten, solo déjalos una vez

Pude lograr esto gracias a esta función ( solo para aclarar : en el proyecto final, fetchData se importa de otro archivo y la declaración de variables y la matriz están en un document.addEventListener("DOMContentLoaded", async () => {} , este es solo uno con fines de prueba)

 async function fetchData(url) { const response = await fetch(url); return await response.json(); } (async () => { let worldCities = await fetchData( "https://pkgstore.datahub.io/core/world-cities/world-cities_json/data/5b3dd46ad10990bca47b04b4739a02ba/world-cities_json.json" ); const countries = [...new Set(worldCities.map((item) => item.country))]; console.log(countries); })();
 .as-console-wrapper { max-height: 100% !important; top: 0; }

Con fetchData, solicito un recurso de forma asíncrona (la URL del archivo .json), luego mapeo una matriz con el archivo y lo "filtro" como mencioné anteriormente

Pero el problema es que funciona, pero no como se necesita, porque la salida debería ser así

resultado deseado

y mi salida es solo una matriz de nombres de países

Sé que estoy mapeando (solo) el valor actual requerido con worldCities.map((item) => item.country) y eliminando valores repetidos con [...new Set()]

Pero, ¿cómo podría hacer que la matriz devuelva un objeto como pares clave/valor [country: 'country1', country: 'country2', ...] (o algo similar a la salida de la imagen) en lugar de la matriz normal ['country1', 'country2', ...] ?

Cualquier ayuda es bienvenida, muchas gracias!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

map() de nuevo:

 const countries = [...new Set(worldCities.map((item) => item.country))].map(country => ({ country }))

Solución de trabajo:

 async function fetchData(url) { const response = await fetch(url); return await response.json(); } (async () => { let worldCities = await fetchData( "https://pkgstore.datahub.io/core/world-cities/world-cities_json/data/5b3dd46ad10990bca47b04b4739a02ba/world-cities_json.json" ); const countries = [...new Set(worldCities.map((item) => item.country))].map(country => ({ country })) console.log(countries); })();
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Al darle el enfoque a continuación, puede lograr obtener una variedad de nombres de países únicos. Si desea una matriz de objetos de país, puede convertir la matriz de nombres.

 $.get('https://pkgstore.datahub.io/core/world-cities/world-cities_json/data/5b3dd46ad10990bca47b04b4739a02ba/world-cities_json.json', function(data) { var res = JSON.parse(data) var countries = res.map(function(elem){return elem.country}); const uniques = Array.from(new Set(countries)); console.log(uniques) });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda